import java.util.Iterator;
import java.util.LinkedList;

public class LinkedListDemo {
    public static void main(String[] args) {
        LinkedList<String> sites = new LinkedList<String>();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        sites.add("Weibo");
        System.out.println(sites);
        //更多的情况下我们使用 ArrayList 访问列表中的随机元素更加高效

        // 使用 addFirst() 在头部添加元素
        //在列表开头添加元素：
        sites.addFirst("Wiki");
        System.out.println(sites);

        //在列表结尾添加元素：

        // 使用 addLast() 在尾部添加元素
        sites.addLast("Wiki");
        System.out.println(sites);

        //在列表开头移除元素：
        // 使用 removeFirst() 移除头部元素
        sites.removeFirst();
        System.out.println(sites);

        //在列表结尾移除元素：
        // 使用 removeLast() 移除尾部元素
        sites.removeLast();
        System.out.println(sites);

        //获取列表开头的元素：
        // 使用 getFirst() 获取头部元素
        System.out.println(sites.getFirst());
        //获取列表结尾的元素：
        // 使用 getLast() 获取尾部元素
        System.out.println(sites.getLast());

        for (int i = 0; i < sites.size(); i++) {
            System.out.println(sites.get(i));
        }
        System.out.println("---------------------");
        Iterator<String> iterator = sites.descendingIterator();
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }
    }
}
